The present invention generally relates to database management systems, and more particularly to database management systems for managing large objects.
Databases traditionally have been used for managing character and numeric data. Example applications include airline reservation systems, banking applications, and stock trading applications. With the dramatic improvements in processor speed, data transmission bandwidth, and storage capacities, data types including video, audio, still images are being stored and manipulated in a wide array of applications. These relatively new data types are represented with a very large quantity of data and are often referred to as binary large objects (BLOBs). Integrating BLOBs into a relational database in a high volume transaction environment presents challenges that cannot be immediately solved with faster processors, additional bandwidth, and more storage.
A relational database can be logically viewed as a table of rows and columns. Each row contains a set of related data items, one or more of which index to the row. A column contains the same type of data, the values of which vary from row-to-row. A significant portion of today""s database technology was built when the data items in a database were relatively small. Smaller data items permitted multiple rows of data to be stored in one physical page of storage, thereby enabling retrieval of multiple rows with a single input/output (I/O) operation. A single BLOB however, may require storage that is two or three orders of magnitude greater than that available on a single page. Therefore, storage for a BLOB may span hundreds or thousands of pages of storage. Thus, a BLOB stored as an ordinary data item in a database table may require thousands of I/O operations for retrieval.
Slow retrieval times are unacceptable in high volume transaction environments. For example, biometric data such as fingerprints may be used in combination with a credit card application, where the cardholder""s fingerprint is associated with the cardholder""s name, account number, and balance. If the cardholder and a vendor are made to wait for an extended period of time, a sale may be lost, the cardholder may quit using the card, and the vendor may no longer accept that credit card.
A system and method that addresses the aforementioned problems, as well as other related problems, are therefore desirable.
In various embodiments, a system and method are provided for managing binary large objects in a database. A database management system manages a database table having a plurality of rows of data. Each row includes one or more fixed-length data elements and one or more object identifiers that reference and are associated with respective binary large objects. An object handler coupled to the database management a system, the object handler configured and arranged to store each binary large object in a section of contiguous storage referenced by the associated identifier, manages binary large objects. Among other advantages, the contiguous storage of the binary large objects reduces data access times, and storage of the object identifiers in the database table eases adaptation of a database management system to accommodate binary large objects.
In accordance with an example embodiment of the invention, there is provided a computer program product that is configured to be operable to manage binary large objects in a database.